package control.client;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.bean.CidadeJB;
import model.bean.ClienteJB;
import model.bean.EstadoJB;
import model.bean.GeneroJB;
import util.ClienteHelper;
import control.server.ClienteControl;



/**
 * Servlet implementation class ClienteServlet
 */
public class ClienteServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	static ClienteControl control;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ClienteServlet() {
        super();
        
        try {
			control = new ClienteControl();
			
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
			// TODO: handle exception
		}
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		try {
			System.out.println(request.getParameter("opcaoCliente"));	
			if(request.getParameter("opcaoCliente").equals("cadastrar")){
				
				ClienteJB cliente = new ClienteJB();
				CidadeJB cidade = new CidadeJB();
				EstadoJB estado = new EstadoJB();
				GeneroJB genero;
				ArrayList<GeneroJB> generos = new ArrayList<GeneroJB>();
				
					
					String tipos ="";
					
					for(int i=1;i<=7;i++ ){
						
						//Condicao que verifica os generos selecionados
						if(request.getParameter("Checkbox"+i) != null){
							
							if(i == 1){
								tipos += "acao|";
							}
							else if(i == 2){
								tipos += "drama|";
							}
							else if(i == 3){
								tipos += "comedia|";
							}
							else if(i == 4){
								tipos += "terror|";
							}
							else if(i == 5){
								tipos += "ficcao|";
							}
							else if(i == 6){
								tipos += "policial|";
							}
							else if(i == 7){
								tipos += "romance|";
							}
							
						}
						
						
					}
				
					genero = new GeneroJB();//Objeto do tipo genero
					genero.setNome(tipos);
					
					generos.add(genero);
					
					estado.setNome(request.getParameter("estado"));
					cidade.setNome(request.getParameter("cidade"));
					cidade.setEstado(estado);
					
				cliente.setNome(request.getParameter("nome"));
				cliente.setEmail(request.getParameter("email"));
				cliente.setCidade(cidade);
				
					//Concatenando String referente a data de nascimento
					String dtNasc = request.getParameter("dd") +"/"+ request.getParameter("mm") + "/" + request.getParameter("aaaa"); 
				
				cliente.setDtNascimento(ClienteHelper.stringToDate(dtNasc));
				
				cliente.setGeneros(generos);
				cliente.setSenha(request.getParameter("senha"));
				
					String promocao = "0";
					//Condicao que verifica se o cliente selecionou a opcao de receber e-mails de promocao
					if(request.getParameter("Checkbox8") != null){
						promocao = "1";
					}
					
				cliente.setPromocao(promocao);
				
				control.inserirCliente(cliente);
				
				
				request.getRequestDispatcher("/index.jsp").forward(request,response);
			}
			
			else {
				System.out.println("chegou aqui");
				String login = request.getParameter("emailLogin");
				String senha = request.getParameter("senhaLogin");
				
				ClienteJB cliente = new ClienteJB();
				
				cliente = control.verificaCliente(login, senha);
				System.out.println(cliente.getNome());
				
				request.getSession().setAttribute("clienteLogado", cliente);
				request.getRequestDispatcher("/busca?opcao=lancamentos&pag=1").forward(request,response);
			
			}
		}	
		
		catch (Throwable e) {
			e.printStackTrace();
			// TODO: handle exception
		}
	}
}
